import cv2


def detect_faces(image_path):
    # 加载预训练的人脸检测模型（Haar级联分类器）
    face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')

    # 读取图片
    img = cv2.imread(image_path)
    if img is None:
        print("无法读取图片，请检查路径是否正确")
        return False

    # 转换为灰度图像（人脸检测通常在灰度图上进行）
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

    # 检测人脸
    faces = face_cascade.detectMultiScale(
        gray,
        scaleFactor=1.1,  # 图像缩放因子
        minNeighbors=5,  # 检测结果的邻域数量阈值
        minSize=(60,60)  # 最小人脸尺寸
    )

    # 判断是否检测到人脸
    print(f"检测到 {len(faces)} 张人脸")
    return faces

if __name__ == '__main__':
    # 使用示例
    image_path = "C:\\Users\\liuxi\\Desktop\\wechat_2025-05-07_110702_311.png"  # 替换为你的图片路径
    detect_faces(image_path)